package com.gsp.cloud.clientribbon.controller;

import com.gsp.cloud.clientribbon.service.HelloService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @Autowired
    HelloService helloService;

    @Autowired
    LoadBalancerClient balancerClient;

    @GetMapping(value = "/hi")
    public String hi(@RequestParam String name) {
        return helloService.hiService(name);
    }

    @GetMapping(value = "/testLoadBalancer")
    public String testLoadBalancer() {
        ServiceInstance instance = balancerClient.choose("client");
        return instance.getHost() + ":" + instance.getPort();
    }
}
